<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>File</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/File"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-File rootpage-File skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">file</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr">
<table class="float-right infobox toccolours toptextcells" style="border-spacing:5px; font-size:90%; text-align:left; width:21em;">
<tbody><tr>
<th colspan="2" class="hintergrundfarbe6" style="font-size:105%; text-align:center;">file
<p class="mw-empty-elt">
</p>
</th></tr>
<tr>
<td colspan="2" style="text-align:center;"><br> Beispiel
</td></tr>
<tr>
<th colspan="2" class="hintergrundfarbe5" style="font-size:105%; text-align:center;">Basisdaten
<p class="mw-empty-elt">
</p>
</th></tr>
<tr>
<td><b><a href="Maintainer" title="Maintainer">Hauptentwickler</a></b>
</td>
<td>Christos Zoulas
</td></tr>
<tr>
<td><b>Aktuelle <a href="Version_(Software)" title="Version (Software)">Version</a></b>
</td>
<td><span class="wikidata-content">5.46<sup id="cite_ref-_332ba10b150dd125_1-0" class="reference"><a href="#cite_note-_332ba10b150dd125-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></span> <br> (<span class="wikidata-content">27. November 2024</span>)
</td></tr>
<tr>
<td><b><a href="Betriebssystem" title="Betriebssystem">Betriebssystem</a></b>
</td>
<td><span class="wikidata-content"><a href="Unixoides_System" title="Unixoides System">Unix-ähnliches System</a></span>
</td></tr>
<tr>
<td><b><a href="Programmiersprache" title="Programmiersprache">Programmiersprache</a></b>
</td>
<td><span class="wikidata-content"><a href="C_(Programmiersprache)" title="C (Programmiersprache)">C</a><sup id="cite_ref-_5a80794a18e1c375_2-0" class="reference"><a href="#cite_note-_5a80794a18e1c375-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></span>
</td></tr>
<tr>
<td><b>Kategorie</b>
</td>
<td>Befehlszeilenprogramm
</td></tr>
<tr>
<td><b>Lizenz</b>
</td>
<td><span class="wikidata-content"><a href="2-Klausel-BSD-Lizenz" class="mw-redirect" title="2-Klausel-BSD-Lizenz">2-Klausel-BSD-Lizenz</a></span>
</td></tr>
<tr>
<td><b><a href="Lokalisierung_(Softwareentwicklung)" title="Lokalisierung (Softwareentwicklung)">deutschsprachig</a></b>
</td>
<td>nein
</td></tr>
<tr>
<td class="hintergrundfarbe5" colspan="2" style="text-align:center;"><a rel="nofollow" class="external text" href="http://darwinsys.com/file/">darwinsys.com/file/</a>
</td></tr></tbody></table>
<p><b>file</b> ist ein <a href="Unix-Kommando" title="Unix-Kommando">Unix-Programm</a> zum Auslesen des Unix-Dateityps, des <a href="Dateiformat" title="Dateiformat">Dateiformats</a> oder des <a href="Internet_Media_Type" title="Internet Media Type">MIME-Typs</a> einer <a href="Datei" title="Datei">Datei</a> sowie anderer Informationen über selbige. Dabei kann <i>file</i> lediglich jene Dateiformate und MIME-Typen korrekt ausgeben, die dem zugrundeliegenden Betriebssystem bekannt sind.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Geschichte">Geschichte</h2></div>
<p>Die erste Version von <i>file</i> datiert zurück bis 1973, <i>Unix Research Version 4</i>. <a href="System_V" title="System V">System V</a> beinhaltete schon eine wesentlich verbesserte Version von <i>file</i>, seit dieser Version wurden die Informationen über die Dateitypen nicht mehr direkt in die <a href="Ausf%C3%BChrbare_Datei" title="Ausführbare Datei">Programmdatei</a> kompiliert, sondern von einer externen Textdatei (<i>mime magic file</i>) zur <a href="Laufzeit_(Informatik)" title="Laufzeit (Informatik)">Laufzeit</a> eingelesen.
</p><p>Die heutzutage verbreiteten Unix-Derivate, das heißt vor allem <a href="Berkeley_Software_Distribution" title="Berkeley Software Distribution">BSD</a> und <a href="Linux" title="Linux">Linux</a>, verwenden eine freie <a href="Open_Source" title="Open Source">Open-Source</a>-<a href="Implementierung" title="Implementierung">Implementierung</a>, die von Ian Darwin neu geschrieben wurde. Diese Implementierung wurde 1989 von Geoff Collyer weiterentwickelt und erhielt seitdem verschiedenste Verbesserungen, unter anderem von berühmten Open-Source-Hackern wie Guy Harris, Chris Lowth und Eric Fischer. Der aktuelle Betreuer ist Christos Zoulas.
</p>
<div class="mw-heading mw-heading2"><h2 id="Spezifikation">Spezifikation</h2></div>
<p>Die <a href="Single_UNIX_Specification" title="Single UNIX Specification">Single UNIX Specification</a> (SUS) sieht vor, dass eine Implementierung des Programms <i>file</i> eine fest definierte Reihe von Tests mit der auf der Kommandozeile angegebenen Datei durchführen muss, um damit ihren Typ festzustellen:
</p>
<ul><li>wenn die Datei nicht gelesen werden kann (beispielsweise aufgrund fehlender <a href="Unix-Dateirechte" title="Unix-Dateirechte">Dateirechte</a> oder weil sie nicht existiert), ist ihr Typ nicht feststellbar (undefiniert). <i>file</i> gibt aus, dass die Datei nicht eingelesen werden konnte.</li>
<li><i>file</i> stellt anhand eines <code>stat()</code>-<a href="Systemaufruf" title="Systemaufruf">Systemaufrufes</a> fest, um welchen Dateityp es sich handelt. Unter Unix gibt es außer normalen Dateien noch <a href="Verzeichnis" title="Verzeichnis">Verzeichnisse</a>, <a href="Named_Pipe" class="mw-redirect" title="Named Pipe">FIFOs</a>, <a href="Socket_(Software)" class="mw-redirect" title="Socket (Software)">Sockets</a>, <a href="Ger%C3%A4tedatei#Blockorientierte_Geräte" title="Gerätedatei">Blockdateien</a> (<i>block special</i>) und <a href="Ger%C3%A4tedatei#Zeichenorientierte_Geräte" title="Gerätedatei">Zeichendateien</a> (<i>character special</i>).</li>
<li>Leere Dateien werden als solche festgestellt (zum Beispiel Dateien, die per <code><a href="Touch_(Unix)" title="Touch (Unix)">touch</a></code> ohne Inhalt erstellt wurden, oder typischerweise <a href="Lock" title="Lock">Sperrdateien</a>).</li>
<li><i>file</i> liest die ersten Bytes bzw. die ganze Datei ein und versucht, dateitypspezifische Muster festzustellen, um auf diese Weise den Dateityp in Erfahrung zu bringen.</li>
<li>Wenn keine der Methoden zu einer Bestimmung des Dateityps geführt hat, wird die Datei als <i>unbekannte Datei (data)</i> bezeichnet.</li></ul>
<p>In zeitgemäßen Implementierungen von <i>file</i> werden in den Tests, in denen Teile der Datei eingelesen werden, Vergleiche mit einer Textdatenbank angestellt, die <a href="Magische_Zahl_(Informatik)" title="Magische Zahl (Informatik)">magische Zahlen</a> enthält. Damit unterscheidet sich <i>file</i> von wesentlich primitiveren Dateityperkennungen, z. B. anhand <a href="Dateiendung" class="mw-redirect" title="Dateiendung">Dateiendungen</a> oder <a href="Internet_Media_Type" title="Internet Media Type">MIME-Typ</a>-Angaben.
</p><p>In den meisten Implementierungen benutzt <i>file</i> eine <a href="Datenbank" title="Datenbank">Datenbank</a>, mit der es die ersten Bytes einer Datei abgleicht. Diese Datenbank wird üblicherweise in einer sogenannten <i>magic</i>-Datei (<a href="Englische_Sprache" title="Englische Sprache">engl.</a>, Magisch) gespeichert, welche typischerweise im <a href="Dateisystem" title="Dateisystem">Dateisystem</a> unter <code>/etc/magic</code>, <code>/usr/share/file/magic</code> o. ä. gespeichert wird. Der Umfang dieser Datei ist meist ausschlaggebend für die Güte der <i>file</i>-Tests zur Bestimmung auch exotischer Dateitypen.
</p>
<div class="mw-heading mw-heading2"><h2 id="Benutzung">Benutzung</h2></div>
<p><i>file</i> lässt sich, wie die meisten Unix-Kommandos, quasi intuitiv benutzen. Ein Aufruf läuft nach dem Schema
</p>
<pre>file <i>[Optionen]</i> <i>Datei</i>
</pre>
<p>Eine der <a href="Single_UNIX_Specification" title="Single UNIX Specification">Single UNIX Specification</a> konforme Implementierung von <i>file</i> muss mindestens die folgenden Argumente verarbeiten können:
</p>
<table class="wikitable">
<caption><a href="Parameter_(Informatik)#Befehlszeilenparameter" title="Parameter (Informatik)">Befehlszeilenparameter</a> von <i>file</i>
</caption>
<tbody><tr>
<th>Parameter
</th>
<th>Bedeutung
</th></tr>
<tr>
<td><code>‑M <i>magicfile</i></code>
</td>
<td>Eine eigene „magische“ Datei angeben, die zur Dateityp-Bestimmung benutzt werden soll. Die normalerweise durchgeführten Tests werden dabei übersprungen.
</td></tr>
<tr>
<td><code>‑m <i>magicfile</i></code>
</td>
<td>Funktioniert genauso wie <code>-M <i>magicfile</i></code>, nur dass die anderen Tests auch durchgeführt werden.
</td></tr>
<tr>
<td><code>-h</code>
</td>
<td>Die potentielle Verwendung von <a href="Softlink" class="mw-redirect" title="Softlink">Softlinks</a> ausgeben.
</td></tr>
<tr>
<td><code>-i</code>
</td>
<td>Klassifiziert die Datei in eine der folgenden Gruppen: <i>nonexistent, <a href="Verzeichnis" title="Verzeichnis">directory</a>, <a href="Named_Pipe" class="mw-redirect" title="Named Pipe">FIFO</a>, <a href="Socket_(Software)" class="mw-redirect" title="Socket (Software)">socket</a>, <a href="Ger%C3%A4tedatei#Blockorientierte_Geräte" title="Gerätedatei">block special</a>, <a href="Ger%C3%A4tedatei#Zeichenorientierte_Geräte" title="Gerätedatei">character special</a>, <a href="Softlink" class="mw-redirect" title="Softlink">symbolic link</a>, regular file, empty file, unreadable file, <a href="Ausf%C3%BChrbare_Datei" title="Ausführbare Datei">executable</a>, <a href="Ar_(Unix)" title="Ar (Unix)">ar archive</a>, <a href="Cpio" title="Cpio">extended cpio format</a>, <a href="Tar_(Packprogramm)" title="Tar (Packprogramm)">extended tar format</a>, <a href="Shell-Skript" class="mw-redirect" title="Shell-Skript">shell script</a>, <a href="C_(Programmiersprache)" title="C (Programmiersprache)">C programming language source</a>, <a href="Fortran" title="Fortran">FORTRAN programming language source</a>, data file</i>
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="Beispiele">Beispiele</h2></div>
<p>Die folgenden Beispiele zeigen die typischen Ausgaben von <i>file</i>, wenn man das Programm mit diversen Dateitypen aufruft. Die fiktiven <a href="Dateiname" title="Dateiname">Dateinamen</a> sollen dabei dem eigenen Dateityp entsprechen. Das <a href="Rautezeichen" title="Rautezeichen">Rautezeichen</a> <i>#</i> soll andeuten, dass diese Zeile in einer <a href="Unix-Shell" title="Unix-Shell">Shell</a> eingegeben werden muss.
</p>
<pre># file file.c
file.c: C program text
# file program
program: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked
(uses shared libs), stripped
# file /dev/wd0a
/dev/wd0a: block special (0/0)
# file -s /dev/hda1
/dev/hda1: Linux/i386 ext2 filesystem
# file -s /dev/hda5
/dev/hda5: Linux/i386 swap file
# file compressed.gz
compressed.gz: gzip compressed data, deflated, original filename, `compressed', last
modified: Thu Jan 26 14:08:23 2006, os: Unix
# file data.ppm
data.ppm: Netpbm PPM "rawbits" image data
</pre>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><i><a href="Binfmt_misc" title="Binfmt misc">binfmt misc</a></i>: Ein <a href="Linux" title="Linux">Linux</a>-<a href="Linux_(Kernel)" title="Linux (Kernel)">Kernelmodul</a>, das wie <i>file</i> anhand der ersten Bytes von Dateien (<i>magic numbers</i>) Dateitypen zu erkennen versucht und damit Programme erkennt und ausführt.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Weblinks">Weblinks</h2></div>
<ul><li><code><a rel="nofollow" class="external text" href="https://pubs.opengroup.org/onlinepubs/9799919799/utilities/file.html">file</a></code>: determine file type – <a href="Open_Group" title="Open Group">Open Group</a> Base Specification</li>
<li>POSIX-Funktionsaufruf <code><a rel="nofollow" class="external text" href="https://pubs.opengroup.org/onlinepubs/009695399/functions/stat.html">stat()</a></code></li>
<li><code><a rel="nofollow" class="external text" href="https://man.openbsd.org/cgi-bin/man.cgi?query=file&sec=1">file(1)</a></code> – <a href="OpenBSD" title="OpenBSD">OpenBSD</a> General Commands <a href="Manpage" title="Manpage">Manual</a></li>
<li><code><a rel="nofollow" class="external text" href="http://manpages.debian.org/cgi-bin/man.cgi?apropos=0&format=html&query=file&sektion=1&locale=de">file(1)</a></code> – <a href="Debian" title="Debian">Debian GNU/Linux</a> Ausführbare Programme oder Shell-Befehle <a href="Manpage" title="Manpage">Handbuchseite</a></li>
<li><a rel="nofollow" class="external text" href="http://ftp.astron.com/pub/file/">Sourcecode</a> von <code>file</code></li>
<li><a rel="nofollow" class="external text" href="https://media.ccc.de/v/gpn14_-_5852_-_de_-_medientheater_-_201406201430_-_identifizierung_von_dateien_mit_file_libmagic_-_christoph_biedl">Vortrag</a> mit Details zur Arbeitsweise von file</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Einzelnachweise">Einzelnachweise</h2></div>
<ol class="references">
<li id="cite_note-_332ba10b150dd125-1"><span class="mw-cite-backlink"><a href="#cite_ref-_332ba10b150dd125_1-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://mailman.astron.com/pipermail/file/2024-November/001435.html"><cite style="font-style:italic"><span lang="en">[File] FIle 5.46 is now available</span></cite>.</a> 27. November 2024 (abgerufen am 28. November 2024).</span>
</li>
<li id="cite_note-_5a80794a18e1c375-2"><span class="mw-cite-backlink"><a href="#cite_ref-_5a80794a18e1c375_2-0">↑</a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://www.openhub.net/p/file/analyses/latest/languages_summary"><cite style="font-style:italic"><span lang="en">The file Open Source Project on Open Hub: Languages Page</span></cite>.</a> In: <cite style="font-style:italic">Open Hub</cite>. (abgerufen am 17. Juli 2018).</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a></span> <span class="reference-text"><span class="cite"><a rel="nofollow" class="external text" href="https://manpages.debian.org/buster/file/file.1.en.html"><i>FILE(1).</i></a> In: <i>Debian Manpages (Debian Handbuchseiten).</i><span class="Abrufdatum"> Abgerufen am 20. Februar 2021</span> (englisch).</span><span style="display: none;" class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&rfr_id=info%3Asid%2Fde.wikipedia.org%3AFile&rft.title=FILE%281%29&rft.description=FILE%281%29&rft.identifier=https%3A%2F%2Fmanpages.debian.org%2Fbuster%2Ffile%2Ffile.1.en.html&rft.language=en"> </span></span>
</li>
</ol></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2024-10-14" href="https://de.wikipedia.org/wiki/?title=File&oldid=249409794">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>